/*
第一次从待排序的数据元素中选出最小（或最大）的一个元素，存放在序列的起始位置，然后再从剩余的未排序元素中寻找到最小（大）元素，然后放到已排序的序列的末尾  时间复杂度O(n2) 空间O(1) 不稳定
 */


function selectSort(nums) {
    let minIndex
    let minValue
    for (let i = 0; i < nums.length; i ++) {
        minIndex = - 1
        minValue = Infinity
        for (let j = i; j < nums.length; j ++) {
            if (nums[j] < minValue) {
                minValue = nums[j]
                minIndex = j
            }
        }
        [nums[i], nums[minIndex]] = [nums[minIndex], nums[i]]
    }
    return nums
}

console.log(selectSort([5, 2, 8, 10, 3, 6, 2.2, 1]));
